1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| class KthLargest { private int k;
private PriorityQueue<Integer> queue;
public KthLargest(int k, int[] nums) { this.k = k; queue = new PriorityQueue(); for (int num : nums) { add(num); } }
public int add(int val) { if (queue.size() < k) { queue.offer(val); return queue.peek(); }
int target = queue.peek(); if (val < target) { return target; }
queue.poll(); queue.offer(val); return queue.peek(); } }
/** * Your KthLargest object will be instantiated and called as such: * KthLargest obj = new KthLargest(k, nums); * int param_1 = obj.add(val); */
|